package com.enhe.gck.enums;

import lombok.AllArgsConstructor;
import lombok.Getter;

import java.util.Arrays;

/**
 * 过磅结果枚举
 */
@Getter
@AllArgsConstructor
public enum WeighingResultEnum {

    // 请上磅
    Please_Weigh_In(1, "请上磅"),
    // 客户余额不足，返厂卸货
    Customer_Balance_Insufficient(2, "客户余额不足，返厂卸货"),
    // 产品编号不足，联系管理员
    Product_Number_Insufficient(3, "产品编号不足，联系管理员"),
    // 未验收，不允许过磅
    Not_Acceptance(4, "未验收，不允许过磅"),
    // 没有待处理订单
    No_Pending_Order(5, "没有待处理订单"),
    // 过磅成功，请下磅
    Success_Weigh_Out(6, "过磅成功，请下磅"),
    // 设备异常，请联系管理员
    Device_Abnormal(7, "设备异常，请联系管理员"),
    // 系统异常，请联系管理员
    System_Abnormal(8, "系统异常，请联系管理员"),
    // 净重偏轻，需要补包
    Net_Weight_Light(9, "净重偏轻，需要补包"),
    // 净重偏重，需要退包
    Net_Weight_Heavy(10, "净重偏重，需要退包"),
    // 地磅刷卡时间太短，请勿重新刷卡
    Frequent_Card_Swiping_Operations(11, "地磅刷卡时间太短，请勿重新刷卡"),
    // 地磅有重量，请稍等
    Weighing_Weight(12, "地磅有重量，请稍等"),
    // 地磅数据异常，请联系管理员
    Weighing_Data_Abnormal(13, "地磅数据异常，请联系管理员"),
    ;

    private int code;
    private String name;

    /**
     * 通过code获取name
     */
    public static String getNameByCode(int code) {
        return Arrays.stream(WeighingResultEnum.values())
                .filter(e -> e.getCode() == code)
                .findFirst()
                .orElseThrow(() -> new RuntimeException("未找到对应的订单枚举值"))
                .getName();
    }

}
